/***************************************************************************
 *   Copyright (C) 2003-2008 by                                            *
 *   Alberto Cuoci		                                                   *
 *   alberto.cuoci@polimi.it                                               *
 *                                                                         *
 *   This program is free software; you can redistribute it and/or modify  *
 *   it under the terms of the GNU General Public License as published by  *
 *   the Free Software Foundation; either version 2 of the License, or     *
 *   (at your option) any later version.                                   *
 *                                                                         *
 *   This program is distributed in the hope that it will be useful,       *
 *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
 *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
 *   GNU General Public License for more details.                          *
 *                                                                         *
 *   You should have received a copy of the GNU General Public License     *
 *   along with this program; if not, write to the                         *
 *   Free Software Foundation, Inc.,                                       *
 *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
 ***************************************************************************/

#include "symbolickinetics/gri30/OpenSMOKE_SymbolicKinetics_GRI30.h"

void OpenSMOKE_SymbolicKinetics_GRI30::giveReactionRates(double cTot, BzzVector &c, BzzVector &R) 
{
	// ============================================================ 
	// ===== CORRECTION COEFFICIENTS FOR THIRD BODY REACTIONS ===== 
	// ============================================================ 
	coeffM1 =	       cTot+0.14E1*c[1]+0.144E2*c[6]+1.0*c[14]+0.75*c[15]+0.26E1*c[16]+2.0*c[27]-0.17*c[49];
	coeffM2 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM12 =	       cTot+1.0*c[1]+5.0*c[4]+5.0*c[6]+1.0*c[14]+0.5*c[15]+0.25E1*c[16]+2.0*c[27]-0.5*c[49];
	coeffM33 =	       cTot-1.0*c[4]-1.0*c[6]-0.25*c[15]+0.5*c[16]+0.5*c[27]-1.0*c[48]-1.0*c[49];
	coeffM39 =	       cTot-1.0*c[1]-1.0*c[6]+1.0*c[14]-1.0*c[16]+2.0*c[27]-0.37*c[49];
	coeffM43 =	       cTot-0.27*c[1]+0.265E1*c[6]+1.0*c[14]+2.0*c[27]-0.62*c[49];
	coeffM50 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM52 =	       cTot+1.0*c[1]+5.0*c[6]+2.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM54 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM56 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM57 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM59 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM63 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM70 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM71 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM72 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM74 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM76 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM83 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM85 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM95 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM131 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM140 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM147 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM158 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM167 =	       cTot+1.0*c[1]-1.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM174 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM185 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.375*c[49];
	coeffM187 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM205 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM212 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM227 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM230 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM237 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM241 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27];
	coeffM269 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM289 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM304 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM312 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM318 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];
	coeffM320 =	       cTot+1.0*c[1]+5.0*c[6]+1.0*c[14]+0.5*c[15]+1.0*c[16]+2.0*c[27]-0.3*c[49];


	// ============================================================ 
	// ===== CORRECTION COEFFICIENTS FOR FALL OFF REACTIONS ======= 
	// ============================================================ 
	CFO12 =	       coeffM12/(1.0+k12*coeffM12/kFallOff12);
	CFO50 =	       coeffM50/(1.0+k50*coeffM50/kFallOff50);
	CFO52 =	       coeffM52/(1.0+k52*coeffM52/kFallOff52);
	CFO54 =	       coeffM54/(1.0+k54*coeffM54/kFallOff54);
	CFO56 =	       coeffM56/(1.0+k56*coeffM56/kFallOff56);
	CFO57 =	       coeffM57/(1.0+k57*coeffM57/kFallOff57);
	CFO59 =	       coeffM59/(1.0+k59*coeffM59/kFallOff59);
	CFO63 =	       coeffM63/(1.0+k63*coeffM63/kFallOff63);
	CFO70 =	       coeffM70/(1.0+k70*coeffM70/kFallOff70);
	CFO71 =	       coeffM71/(1.0+k71*coeffM71/kFallOff71);
	CFO72 =	       coeffM72/(1.0+k72*coeffM72/kFallOff72);
	CFO74 =	       coeffM74/(1.0+k74*coeffM74/kFallOff74);
	CFO76 =	       coeffM76/(1.0+k76*coeffM76/kFallOff76);
	CFO83 =	       coeffM83/(1.0+k83*coeffM83/kFallOff83);
	CFO85 =	       coeffM85/(1.0+k85*coeffM85/kFallOff85);
	CFO95 =	       coeffM95/(1.0+k95*coeffM95/kFallOff95);
	CFO131 =	       coeffM131/(1.0+k131*coeffM131/kFallOff131);
	CFO140 =	       coeffM140/(1.0+k140*coeffM140/kFallOff140);
	CFO147 =	       coeffM147/(1.0+k147*coeffM147/kFallOff147);
	CFO158 =	       coeffM158/(1.0+k158*coeffM158/kFallOff158);
	CFO174 =	       coeffM174/(1.0+k174*coeffM174/kFallOff174);
	CFO185 =	       coeffM185/(1.0+k185*coeffM185/kFallOff185);
	CFO237 =	       coeffM237/(1.0+k237*coeffM237/kFallOff237);
	CFO241 =	       coeffM241/(1.0+k241*coeffM241/kFallOff241);
	CFO289 =	       coeffM289/(1.0+k289*coeffM289/kFallOff289);
	CFO304 =	       coeffM304/(1.0+k304*coeffM304/kFallOff304);
	CFO312 =	       coeffM312/(1.0+k312*coeffM312/kFallOff312);
	CFO318 =	       coeffM318/(1.0+k318*coeffM318/kFallOff318);
	CFO320 =	       coeffM320/(1.0+k320*coeffM320/kFallOff320);


	lnPr50 =	       log(k50*coeffM50/kFallOff50);
	lnPr52 =	       log(k52*coeffM52/kFallOff52);
	lnPr54 =	       log(k54*coeffM54/kFallOff54);
	lnPr56 =	       log(k56*coeffM56/kFallOff56);
	lnPr57 =	       log(k57*coeffM57/kFallOff57);
	lnPr59 =	       log(k59*coeffM59/kFallOff59);
	lnPr63 =	       log(k63*coeffM63/kFallOff63);
	lnPr70 =	       log(k70*coeffM70/kFallOff70);
	lnPr71 =	       log(k71*coeffM71/kFallOff71);
	lnPr72 =	       log(k72*coeffM72/kFallOff72);
	lnPr74 =	       log(k74*coeffM74/kFallOff74);
	lnPr76 =	       log(k76*coeffM76/kFallOff76);
	lnPr83 =	       log(k83*coeffM83/kFallOff83);
	lnPr85 =	       log(k85*coeffM85/kFallOff85);
	lnPr95 =	       log(k95*coeffM95/kFallOff95);
	lnPr131 =	       log(k131*coeffM131/kFallOff131);
	lnPr140 =	       log(k140*coeffM140/kFallOff140);
	lnPr147 =	       log(k147*coeffM147/kFallOff147);
	lnPr158 =	       log(k158*coeffM158/kFallOff158);
	lnPr174 =	       log(k174*coeffM174/kFallOff174);
	lnPr241 =	       log(k241*coeffM241/kFallOff241);
	lnPr289 =	       log(k289*coeffM289/kFallOff289);
	lnPr304 =	       log(k304*coeffM304/kFallOff304);
	lnPr312 =	       log(k312*coeffM312/kFallOff312);
	lnPr318 =	       log(k318*coeffM318/kFallOff318);
	lnPr320 =	       log(k320*coeffM320/kFallOff320);


	wF12 =	1.00; 
	wF50 =	pow(10.0, logFcent50/(1.0+BzzPow2((0.434294481903*lnPr50-0.40-0.67*logFcent50)/(0.806-0.0608012274665*lnPr50-1.1762*logFcent50)))); 
	wF52 =	pow(10.0, logFcent52/(1.0+BzzPow2((0.434294481903*lnPr52-0.40-0.67*logFcent52)/(0.806-0.0608012274665*lnPr52-1.1762*logFcent52)))); 
	wF54 =	pow(10.0, logFcent54/(1.0+BzzPow2((0.434294481903*lnPr54-0.40-0.67*logFcent54)/(0.806-0.0608012274665*lnPr54-1.1762*logFcent54)))); 
	wF56 =	pow(10.0, logFcent56/(1.0+BzzPow2((0.434294481903*lnPr56-0.40-0.67*logFcent56)/(0.806-0.0608012274665*lnPr56-1.1762*logFcent56)))); 
	wF57 =	pow(10.0, logFcent57/(1.0+BzzPow2((0.434294481903*lnPr57-0.40-0.67*logFcent57)/(0.806-0.0608012274665*lnPr57-1.1762*logFcent57)))); 
	wF59 =	pow(10.0, logFcent59/(1.0+BzzPow2((0.434294481903*lnPr59-0.40-0.67*logFcent59)/(0.806-0.0608012274665*lnPr59-1.1762*logFcent59)))); 
	wF63 =	pow(10.0, logFcent63/(1.0+BzzPow2((0.434294481903*lnPr63-0.40-0.67*logFcent63)/(0.806-0.0608012274665*lnPr63-1.1762*logFcent63)))); 
	wF70 =	pow(10.0, logFcent70/(1.0+BzzPow2((0.434294481903*lnPr70-0.40-0.67*logFcent70)/(0.806-0.0608012274665*lnPr70-1.1762*logFcent70)))); 
	wF71 =	pow(10.0, logFcent71/(1.0+BzzPow2((0.434294481903*lnPr71-0.40-0.67*logFcent71)/(0.806-0.0608012274665*lnPr71-1.1762*logFcent71)))); 
	wF72 =	pow(10.0, logFcent72/(1.0+BzzPow2((0.434294481903*lnPr72-0.40-0.67*logFcent72)/(0.806-0.0608012274665*lnPr72-1.1762*logFcent72)))); 
	wF74 =	pow(10.0, logFcent74/(1.0+BzzPow2((0.434294481903*lnPr74-0.40-0.67*logFcent74)/(0.806-0.0608012274665*lnPr74-1.1762*logFcent74)))); 
	wF76 =	pow(10.0, logFcent76/(1.0+BzzPow2((0.434294481903*lnPr76-0.40-0.67*logFcent76)/(0.806-0.0608012274665*lnPr76-1.1762*logFcent76)))); 
	wF83 =	pow(10.0, logFcent83/(1.0+BzzPow2((0.434294481903*lnPr83-0.40-0.67*logFcent83)/(0.806-0.0608012274665*lnPr83-1.1762*logFcent83)))); 
	wF85 =	pow(10.0, logFcent85/(1.0+BzzPow2((0.434294481903*lnPr85-0.40-0.67*logFcent85)/(0.806-0.0608012274665*lnPr85-1.1762*logFcent85)))); 
	wF95 =	pow(10.0, logFcent95/(1.0+BzzPow2((0.434294481903*lnPr95-0.40-0.67*logFcent95)/(0.806-0.0608012274665*lnPr95-1.1762*logFcent95)))); 
	wF131 =	pow(10.0, logFcent131/(1.0+BzzPow2((0.434294481903*lnPr131-0.40-0.67*logFcent131)/(0.806-0.0608012274665*lnPr131-1.1762*logFcent131)))); 
	wF140 =	pow(10.0, logFcent140/(1.0+BzzPow2((0.434294481903*lnPr140-0.40-0.67*logFcent140)/(0.806-0.0608012274665*lnPr140-1.1762*logFcent140)))); 
	wF147 =	pow(10.0, logFcent147/(1.0+BzzPow2((0.434294481903*lnPr147-0.40-0.67*logFcent147)/(0.806-0.0608012274665*lnPr147-1.1762*logFcent147)))); 
	wF158 =	pow(10.0, logFcent158/(1.0+BzzPow2((0.434294481903*lnPr158-0.40-0.67*logFcent158)/(0.806-0.0608012274665*lnPr158-1.1762*logFcent158)))); 
	wF174 =	pow(10.0, logFcent174/(1.0+BzzPow2((0.434294481903*lnPr174-0.40-0.67*logFcent174)/(0.806-0.0608012274665*lnPr174-1.1762*logFcent174)))); 
	wF185 =	1.00; 
	wF237 =	1.00; 
	wF241 =	pow(10.0, logFcent241/(1.0+BzzPow2((0.434294481903*lnPr241-0.40-0.67*logFcent241)/(0.806-0.0608012274665*lnPr241-1.1762*logFcent241)))); 
	wF289 =	pow(10.0, logFcent289/(1.0+BzzPow2((0.434294481903*lnPr289-0.40-0.67*logFcent289)/(0.806-0.0608012274665*lnPr289-1.1762*logFcent289)))); 
	wF304 =	pow(10.0, logFcent304/(1.0+BzzPow2((0.434294481903*lnPr304-0.40-0.67*logFcent304)/(0.806-0.0608012274665*lnPr304-1.1762*logFcent304)))); 
	wF312 =	pow(10.0, logFcent312/(1.0+BzzPow2((0.434294481903*lnPr312-0.40-0.67*logFcent312)/(0.806-0.0608012274665*lnPr312-1.1762*logFcent312)))); 
	wF318 =	pow(10.0, logFcent318/(1.0+BzzPow2((0.434294481903*lnPr318-0.40-0.67*logFcent318)/(0.806-0.0608012274665*lnPr318-1.1762*logFcent318)))); 
	wF320 =	pow(10.0, logFcent320/(1.0+BzzPow2((0.434294481903*lnPr320-0.40-0.67*logFcent320)/(0.806-0.0608012274665*lnPr320-1.1762*logFcent320)))); 


	coeffFallOff12 =	       CFO12*wF12;
	coeffFallOff50 =	       CFO50*wF50;
	coeffFallOff52 =	       CFO52*wF52;
	coeffFallOff54 =	       CFO54*wF54;
	coeffFallOff56 =	       CFO56*wF56;
	coeffFallOff57 =	       CFO57*wF57;
	coeffFallOff59 =	       CFO59*wF59;
	coeffFallOff63 =	       CFO63*wF63;
	coeffFallOff70 =	       CFO70*wF70;
	coeffFallOff71 =	       CFO71*wF71;
	coeffFallOff72 =	       CFO72*wF72;
	coeffFallOff74 =	       CFO74*wF74;
	coeffFallOff76 =	       CFO76*wF76;
	coeffFallOff83 =	       CFO83*wF83;
	coeffFallOff85 =	       CFO85*wF85;
	coeffFallOff95 =	       CFO95*wF95;
	coeffFallOff131 =	       CFO131*wF131;
	coeffFallOff140 =	       CFO140*wF140;
	coeffFallOff147 =	       CFO147*wF147;
	coeffFallOff158 =	       CFO158*wF158;
	coeffFallOff174 =	       CFO174*wF174;
	coeffFallOff185 =	       CFO185*wF185;
	coeffFallOff237 =	       CFO237*wF237;
	coeffFallOff241 =	       CFO241*wF241;
	coeffFallOff289 =	       CFO289*wF289;
	coeffFallOff304 =	       CFO304*wF304;
	coeffFallOff312 =	       CFO312*wF312;
	coeffFallOff318 =	       CFO318*wF318;
	coeffFallOff320 =	       CFO320*wF320;


	// ============================================================ 
	// ===== REACTION RATES FOR THIRD BODY REACTIONS (Flat) ======= 
	// ============================================================ 
	rFlat1 =	       (c[3]*c[3]-c[4]*uK1)*k1;
	rFlat2 =	       (c[2]*c[3]-c[5]*uK2)*k2;
	rFlat12 =	       (c[3]*c[15]-c[16]*uK12)*k12;
	rFlat33 =	       (c[2]*c[4]-c[7]*uK33)*k33;
	rFlat39 =	       (c[2]*c[2]-c[1]*uK39)*k39;
	rFlat43 =	       (c[2]*c[5]-c[6]*uK43)*k43;
	rFlat50 =	       (c[2]*c[11]-c[13]*uK50)*k50;
	rFlat52 =	       (c[2]*c[13]-c[14]*uK52)*k52;
	rFlat54 =	       (c[2]*c[17]-c[18]*uK54)*k54;
	rFlat56 =	       (c[2]*c[18]-c[19]*uK56)*k56;
	rFlat57 =	       (c[2]*c[18]-c[20]*uK57)*k57;
	rFlat59 =	       (c[2]*c[19]-c[21]*uK59)*k59;
	rFlat63 =	       (c[2]*c[20]-c[21]*uK63)*k63;
	rFlat70 =	       (c[2]*c[22]-c[23]*uK70)*k70;
	rFlat71 =	       (c[2]*c[23]-c[24]*uK71)*k71;
	rFlat72 =	       (c[2]*c[24]-c[25]*uK72)*k72;
	rFlat74 =	       (c[2]*c[25]-c[26]*uK74)*k74;
	rFlat76 =	       (c[2]*c[26]-c[27]*uK76)*k76;
	rFlat83 =	       (c[1]*c[15]-c[18]*uK83)*k83;
	rFlat85 =	       (c[5]*c[5]-c[8]*uK85)*k85;
	rFlat95 =	       (c[5]*c[13]-c[21]*uK95)*k95;
	rFlat131 =	       (c[10]*c[15]-c[28]*uK131)*k131;
	rFlat140 =	       (c[11]*c[15]-c[29]*uK140)*k140;
	rFlat147 =	       (c[6]*c[12]-c[21]*uK147)*k147;
	rFlat158 =	       (c[13]*c[13]-c[27]*uK158)*k158;
	rFlat167 =	       (c[17]-c[2]*c[15]*uK167)*k167;
	rFlat174 =	       (c[25]-c[1]*c[23]*uK174)*k174;
	rFlat185 =	       (c[38]-c[3]*c[48]*uK185)*k185;
	rFlat187 =	       (c[3]*c[36]-c[37]*uK187)*k187;
	rFlat205 =	       (c[35]-c[2]*c[48]*uK205)*k205;
	rFlat212 =	       (c[2]*c[36]-c[39]*uK212)*k212;
	rFlat227 =	       (c[47]-c[15]*c[31]*uK227)*k227;
	rFlat230 =	       (c[41]-c[2]*c[40]*uK230)*k230;
	rFlat237 =	       (c[2]*c[41]-c[42]*uK237)*k237;
	rFlat241 =	       (c[10]*c[48]-c[43]*uK241)*k241;
	rFlat269 =	       (c[46]-c[15]*c[32]*uK269)*k269;
	rFlat289 =	       (c[1]*c[10]-c[13]*uK289)*k289;
	rFlat304 =	       (c[2]*c[29]-c[52]*uK304)*k304;
	rFlat312 =	       (c[13]*c[26]-c[51]*uK312)*k312;
	rFlat318 =	       (c[13]*c[25]-c[50]*uK318)*k318;
	rFlat320 =	       (c[2]*c[50]-c[51]*uK320)*k320;


	// ============================================================ 
	// ===== REACTION RATES FOR EVERY REACTION ==================== 
	// ============================================================ 
	r1 =	       rFlat1*coeffM1;
	r2 =	       rFlat2*coeffM2;
	r3 =	       (c[1]*c[3]-c[2]*c[5]*uK3)*k3;
	r4 =	       (c[3]*c[7]-c[4]*c[5]*uK4)*k4;
	r5 =	       (c[3]*c[8]-c[5]*c[7]*uK5)*k5;
	r6 =	       (c[3]*c[10]-c[2]*c[15]*uK6)*k6;
	r7 =	       (c[3]*c[11]-c[2]*c[17]*uK7)*k7;
	r8 =	       (c[3]*c[12]-c[1]*c[15]*uK8)*k8;
	r9 =	       (c[3]*c[12]-c[2]*c[17]*uK9)*k9;
	r10 =	       (c[3]*c[13]-c[2]*c[18]*uK10)*k10;
	r11 =	       (c[3]*c[14]-c[5]*c[13]*uK11)*k11;
	r12 =	       rFlat12*coeffFallOff12;
	r13 =	       (c[3]*c[17]-c[5]*c[15]*uK13)*k13;
	r14 =	       (c[3]*c[17]-c[2]*c[16]*uK14)*k14;
	r15 =	       (c[3]*c[18]-c[5]*c[17]*uK15)*k15;
	r16 =	       (c[3]*c[19]-c[5]*c[18]*uK16)*k16;
	r17 =	       (c[3]*c[20]-c[5]*c[18]*uK17)*k17;
	r18 =	       (c[3]*c[21]-c[5]*c[19]*uK18)*k18;
	r19 =	       (c[3]*c[21]-c[5]*c[20]*uK19)*k19;
	r20 =	       (c[3]*c[22]-c[10]*c[15]*uK20)*k20;
	r21 =	       (c[3]*c[23]-c[2]*c[28]*uK21)*k21;
	r22 =	       (c[3]*c[23]-c[5]*c[22]*uK22)*k22;
	r23 =	       (c[3]*c[23]-c[11]*c[15]*uK23)*k23;
	r24 =	       (c[3]*c[24]-c[2]*c[29]*uK24)*k24;
	r25 =	       (c[3]*c[25]-c[13]*c[17]*uK25)*k25;
	r26 =	       (c[3]*c[26]-c[13]*c[18]*uK26)*k26;
	r27 =	       (c[3]*c[27]-c[5]*c[26]*uK27)*k27;
	r28 =	       (c[3]*c[28]-c[2]*c[15]*c[15]*uK28)*k28;
	r29 =	       (c[3]*c[29]-c[5]*c[28]*uK29)*k29;
	r30 =	       (c[3]*c[29]-c[11]*c[16]*uK30)*k30;
	r31 =	       (c[4]*c[15]-c[3]*c[16]*uK31)*k31;
	r32 =	       (c[4]*c[18]-c[7]*c[17]*uK32)*k32;
	r33 =	       rFlat33*coeffM33;
	r34 =	       (c[2]*c[4]*c[4]-c[4]*c[7]*uK34)*k34;
	r35 =	       (c[2]*c[4]*c[6]-c[6]*c[7]*uK35)*k35;
	r36 =	       (c[2]*c[4]*c[48]-c[7]*c[48]*uK36)*k36;
	r37 =	       (c[2]*c[4]*c[49]-c[7]*c[49]*uK37)*k37;
	r38 =	       (c[2]*c[4]-c[3]*c[5]*uK38)*k38;
	r39 =	       rFlat39*coeffM39;
	r40 =	       (c[1]*c[2]*c[2]-c[1]*c[1]*uK40)*k40;
	r41 =	       (c[2]*c[2]*c[6]-c[1]*c[6]*uK41)*k41;
	r42 =	       (c[2]*c[2]*c[16]-c[1]*c[16]*uK42)*k42;
	r43 =	       rFlat43*coeffM43;
	r44 =	       (c[2]*c[7]-c[3]*c[6]*uK44)*k44;
	r45 =	       (c[2]*c[7]-c[1]*c[4]*uK45)*k45;
	r46 =	       (c[2]*c[7]-c[5]*c[5]*uK46)*k46;
	r47 =	       (c[2]*c[8]-c[1]*c[7]*uK47)*k47;
	r48 =	       (c[2]*c[8]-c[5]*c[6]*uK48)*k48;
	r49 =	       (c[2]*c[10]-c[1]*c[9]*uK49)*k49;
	r50 =	       rFlat50*coeffFallOff50;
	r51 =	       (c[2]*c[12]-c[1]*c[10]*uK51)*k51;
	r52 =	       rFlat52*coeffFallOff52;
	r53 =	       (c[2]*c[14]-c[1]*c[13]*uK53)*k53;
	r54 =	       rFlat54*coeffFallOff54;
	r55 =	       (c[2]*c[17]-c[1]*c[15]*uK55)*k55;
	r56 =	       rFlat56*coeffFallOff56;
	r57 =	       rFlat57*coeffFallOff57;
	r58 =	       (c[2]*c[18]-c[1]*c[17]*uK58)*k58;
	r59 =	       rFlat59*coeffFallOff59;
	r60 =	       (c[2]*c[19]-c[1]*c[18]*uK60)*k60;
	r61 =	       (c[2]*c[19]-c[5]*c[13]*uK61)*k61;
	r62 =	       (c[2]*c[19]-c[6]*c[12]*uK62)*k62;
	r63 =	       rFlat63*coeffFallOff63;
	r64 =	       (c[2]*c[20]-c[2]*c[19]*uK64)*k64;
	r65 =	       (c[2]*c[20]-c[1]*c[18]*uK65)*k65;
	r66 =	       (c[2]*c[20]-c[5]*c[13]*uK66)*k66;
	r67 =	       (c[2]*c[20]-c[6]*c[12]*uK67)*k67;
	r68 =	       (c[2]*c[21]-c[1]*c[19]*uK68)*k68;
	r69 =	       (c[2]*c[21]-c[1]*c[20]*uK69)*k69;
	r70 =	       rFlat70*coeffFallOff70;
	r71 =	       rFlat71*coeffFallOff71;
	r72 =	       rFlat72*coeffFallOff72;
	r73 =	       (c[2]*c[24]-c[1]*c[23]*uK73)*k73;
	r74 =	       rFlat74*coeffFallOff74;
	r75 =	       (c[2]*c[25]-c[1]*c[24]*uK75)*k75;
	r76 =	       rFlat76*coeffFallOff76;
	r77 =	       (c[2]*c[26]-c[1]*c[25]*uK77)*k77;
	r78 =	       (c[2]*c[27]-c[1]*c[26]*uK78)*k78;
	r79 =	       (c[2]*c[28]-c[12]*c[15]*uK79)*k79;
	r80 =	       (c[2]*c[29]-c[1]*c[28]*uK80)*k80;
	r81 =	       (c[2]*c[29]-c[13]*c[15]*uK81)*k81;
	r82 =	       (c[2]*c[30]-c[2]*c[29]*uK82)*k82;
	r83 =	       rFlat83*coeffFallOff83;
	r84 =	       (c[1]*c[5]-c[2]*c[6]*uK84)*k84;
	r85 =	       rFlat85*coeffFallOff85;
	r86 =	       (c[5]*c[5]-c[3]*c[6]*uK86)*k86;
	r87 =	       (c[5]*c[7]-c[4]*c[6]*uK87)*k87;
	r88 =	       (c[5]*c[8]-c[6]*c[7]*uK88)*k88;
	r89 =	       (c[5]*c[8]-c[6]*c[7]*uK89)*k89;
	r90 =	       (c[5]*c[9]-c[2]*c[15]*uK90)*k90;
	r91 =	       (c[5]*c[10]-c[2]*c[17]*uK91)*k91;
	r92 =	       (c[5]*c[11]-c[2]*c[18]*uK92)*k92;
	r93 =	       (c[5]*c[11]-c[6]*c[10]*uK93)*k93;
	r94 =	       (c[5]*c[12]-c[2]*c[18]*uK94)*k94;
	r95 =	       rFlat95*coeffFallOff95;
	r96 =	       (c[5]*c[13]-c[6]*c[11]*uK96)*k96;
	r97 =	       (c[5]*c[13]-c[6]*c[12]*uK97)*k97;
	r98 =	       (c[5]*c[14]-c[6]*c[13]*uK98)*k98;
	r99 =	       (c[5]*c[15]-c[2]*c[16]*uK99)*k99;
	r100 =	       (c[5]*c[17]-c[6]*c[15]*uK100)*k100;
	r101 =	       (c[5]*c[18]-c[6]*c[17]*uK101)*k101;
	r102 =	       (c[5]*c[19]-c[6]*c[18]*uK102)*k102;
	r103 =	       (c[5]*c[20]-c[6]*c[18]*uK103)*k103;
	r104 =	       (c[5]*c[21]-c[6]*c[19]*uK104)*k104;
	r105 =	       (c[5]*c[21]-c[6]*c[20]*uK105)*k105;
	r106 =	       (c[5]*c[22]-c[2]*c[28]*uK106)*k106;
	r107 =	       (c[5]*c[23]-c[2]*c[29]*uK107)*k107;
	r108 =	       (c[5]*c[23]-c[2]*c[30]*uK108)*k108;
	r109 =	       (c[5]*c[23]-c[6]*c[22]*uK109)*k109;
	r110 =	       (c[5]*c[23]-c[13]*c[15]*uK110)*k110;
	r111 =	       (c[5]*c[24]-c[6]*c[23]*uK111)*k111;
	r112 =	       (c[5]*c[25]-c[6]*c[24]*uK112)*k112;
	r113 =	       (c[5]*c[27]-c[6]*c[26]*uK113)*k113;
	r114 =	       (c[5]*c[29]-c[6]*c[28]*uK114)*k114;
	r115 =	       (c[7]*c[7]-c[4]*c[8]*uK115)*k115;
	r116 =	       (c[7]*c[7]-c[4]*c[8]*uK116)*k116;
	r117 =	       (c[7]*c[11]-c[5]*c[18]*uK117)*k117;
	r118 =	       (c[7]*c[13]-c[4]*c[14]*uK118)*k118;
	r119 =	       (c[7]*c[13]-c[5]*c[20]*uK119)*k119;
	r120 =	       (c[7]*c[15]-c[5]*c[16]*uK120)*k120;
	r121 =	       (c[7]*c[18]-c[8]*c[17]*uK121)*k121;
	r122 =	       (c[4]*c[9]-c[3]*c[15]*uK122)*k122;
	r123 =	       (c[9]*c[11]-c[2]*c[22]*uK123)*k123;
	r124 =	       (c[9]*c[13]-c[2]*c[23]*uK124)*k124;
	r125 =	       (c[4]*c[10]-c[3]*c[17]*uK125)*k125;
	r126 =	       (c[1]*c[10]-c[2]*c[11]*uK126)*k126;
	r127 =	       (c[6]*c[10]-c[2]*c[18]*uK127)*k127;
	r128 =	       (c[10]*c[11]-c[2]*c[23]*uK128)*k128;
	r129 =	       (c[10]*c[13]-c[2]*c[24]*uK129)*k129;
	r130 =	       (c[10]*c[14]-c[2]*c[25]*uK130)*k130;
	r131 =	       rFlat131*coeffFallOff131;
	r132 =	       (c[10]*c[16]-c[15]*c[17]*uK132)*k132;
	r133 =	       (c[10]*c[18]-c[2]*c[29]*uK133)*k133;
	r134 =	       (c[10]*c[28]-c[15]*c[23]*uK134)*k134;
	r135 =	       c[4]*c[11]*k135;
	r136 =	       (c[1]*c[11]-c[2]*c[13]*uK136)*k136;
	r137 =	       (c[11]*c[11]-c[1]*c[23]*uK137)*k137;
	r138 =	       (c[11]*c[13]-c[2]*c[25]*uK138)*k138;
	r139 =	       (c[11]*c[14]-c[13]*c[13]*uK139)*k139;
	r140 =	       rFlat140*coeffFallOff140;
	r141 =	       (c[11]*c[28]-c[15]*c[24]*uK141)*k141;
	r142 =	       (c[12]*c[48]-c[11]*c[48]*uK142)*k142;
	r143 =	       (c[12]*c[49]-c[11]*c[49]*uK143)*k143;
	r144 =	       (c[4]*c[12]-c[2]*c[5]*c[15]*uK144)*k144;
	r145 =	       (c[4]*c[12]-c[6]*c[15]*uK145)*k145;
	r146 =	       (c[1]*c[12]-c[2]*c[13]*uK146)*k146;
	r147 =	       rFlat147*coeffFallOff147;
	r148 =	       (c[6]*c[12]-c[6]*c[11]*uK148)*k148;
	r149 =	       (c[12]*c[13]-c[2]*c[25]*uK149)*k149;
	r150 =	       (c[12]*c[14]-c[13]*c[13]*uK150)*k150;
	r151 =	       (c[12]*c[15]-c[11]*c[15]*uK151)*k151;
	r152 =	       (c[12]*c[16]-c[11]*c[16]*uK152)*k152;
	r153 =	       (c[12]*c[16]-c[15]*c[18]*uK153)*k153;
	r154 =	       (c[12]*c[27]-c[13]*c[26]*uK154)*k154;
	r155 =	       (c[4]*c[13]-c[3]*c[20]*uK155)*k155;
	r156 =	       (c[4]*c[13]-c[5]*c[18]*uK156)*k156;
	r157 =	       (c[8]*c[13]-c[7]*c[14]*uK157)*k157;
	r158 =	       rFlat158*coeffFallOff158;
	r159 =	       (c[13]*c[13]-c[2]*c[26]*uK159)*k159;
	r160 =	       (c[13]*c[17]-c[14]*c[15]*uK160)*k160;
	r161 =	       (c[13]*c[18]-c[14]*c[17]*uK161)*k161;
	r162 =	       (c[13]*c[21]-c[14]*c[19]*uK162)*k162;
	r163 =	       (c[13]*c[21]-c[14]*c[20]*uK163)*k163;
	r164 =	       (c[13]*c[25]-c[14]*c[24]*uK164)*k164;
	r165 =	       (c[13]*c[27]-c[14]*c[26]*uK165)*k165;
	r166 =	       (c[6]*c[17]-c[2]*c[6]*c[15]*uK166)*k166;
	r167 =	       rFlat167*coeffM167;
	r168 =	       (c[4]*c[17]-c[7]*c[15]*uK168)*k168;
	r169 =	       (c[4]*c[19]-c[7]*c[18]*uK169)*k169;
	r170 =	       (c[4]*c[20]-c[7]*c[18]*uK170)*k170;
	r171 =	       (c[4]*c[22]-c[15]*c[17]*uK171)*k171;
	r172 =	       (c[1]*c[22]-c[2]*c[23]*uK172)*k172;
	r173 =	       (c[4]*c[24]-c[17]*c[18]*uK173)*k173;
	r174 =	       rFlat174*coeffFallOff174;
	r175 =	       (c[4]*c[26]-c[7]*c[25]*uK175)*k175;
	r176 =	       (c[4]*c[28]-c[5]*c[15]*c[15]*uK176)*k176;
	r177 =	       (c[28]*c[28]-c[15]*c[15]*c[23]*uK177)*k177;
	r178 =	       (c[31]*c[36]-c[3]*c[48]*uK178)*k178;
	r179 =	       (c[4]*c[31]-c[3]*c[36]*uK179)*k179;
	r180 =	       (c[5]*c[31]-c[2]*c[36]*uK180)*k180;
	r181 =	       (c[3]*c[38]-c[4]*c[48]*uK181)*k181;
	r182 =	       (c[3]*c[38]-c[36]*c[36]*uK182)*k182;
	r183 =	       (c[2]*c[38]-c[5]*c[48]*uK183)*k183;
	r184 =	       (c[5]*c[38]-c[7]*c[48]*uK184)*k184;
	r185 =	       rFlat185*coeffFallOff185;
	r186 =	       (c[7]*c[36]-c[5]*c[37]*uK186)*k186;
	r187 =	       rFlat187*coeffM187;
	r188 =	       (c[3]*c[37]-c[4]*c[36]*uK188)*k188;
	r189 =	       (c[2]*c[37]-c[5]*c[36]*uK189)*k189;
	r190 =	       (c[3]*c[32]-c[2]*c[36]*uK190)*k190;
	r191 =	       (c[2]*c[32]-c[1]*c[31]*uK191)*k191;
	r192 =	       (c[5]*c[32]-c[2]*c[39]*uK192)*k192;
	r193 =	       (c[5]*c[32]-c[6]*c[31]*uK193)*k193;
	r194 =	       (c[4]*c[32]-c[3]*c[39]*uK194)*k194;
	r195 =	       (c[4]*c[32]-c[5]*c[36]*uK195)*k195;
	r196 =	       (c[31]*c[32]-c[2]*c[48]*uK196)*k196;
	r197 =	       (c[6]*c[32]-c[1]*c[39]*uK197)*k197;
	r198 =	       (c[32]*c[36]-c[5]*c[48]*uK198)*k198;
	r199 =	       (c[32]*c[36]-c[2]*c[38]*uK199)*k199;
	r200 =	       (c[3]*c[33]-c[5]*c[32]*uK200)*k200;
	r201 =	       (c[3]*c[33]-c[2]*c[39]*uK201)*k201;
	r202 =	       (c[2]*c[33]-c[1]*c[32]*uK202)*k202;
	r203 =	       (c[5]*c[33]-c[6]*c[32]*uK203)*k203;
	r204 =	       (c[35]-c[2]*c[48]*uK204)*k204;
	r205 =	       rFlat205*coeffM205;
	r206 =	       (c[4]*c[35]-c[7]*c[48]*uK206)*k206;
	r207 =	       (c[3]*c[35]-c[5]*c[48]*uK207)*k207;
	r208 =	       (c[3]*c[35]-c[32]*c[36]*uK208)*k208;
	r209 =	       (c[2]*c[35]-c[1]*c[48]*uK209)*k209;
	r210 =	       (c[5]*c[35]-c[6]*c[48]*uK210)*k210;
	r211 =	       (c[13]*c[35]-c[14]*c[48]*uK211)*k211;
	r212 =	       rFlat212*coeffM212;
	r213 =	       (c[3]*c[39]-c[5]*c[36]*uK213)*k213;
	r214 =	       (c[2]*c[39]-c[1]*c[36]*uK214)*k214;
	r215 =	       (c[5]*c[39]-c[6]*c[36]*uK215)*k215;
	r216 =	       (c[4]*c[39]-c[7]*c[36]*uK216)*k216;
	r217 =	       (c[3]*c[40]-c[15]*c[31]*uK217)*k217;
	r218 =	       (c[5]*c[40]-c[2]*c[47]*uK218)*k218;
	r219 =	       (c[6]*c[40]-c[5]*c[41]*uK219)*k219;
	r220 =	       (c[4]*c[40]-c[3]*c[47]*uK220)*k220;
	r221 =	       (c[1]*c[40]-c[2]*c[41]*uK221)*k221;
	r222 =	       (c[3]*c[47]-c[15]*c[36]*uK222)*k222;
	r223 =	       (c[2]*c[47]-c[15]*c[32]*uK223)*k223;
	r224 =	       (c[5]*c[47]-c[2]*c[15]*c[36]*uK224)*k224;
	r225 =	       (c[31]*c[47]-c[15]*c[48]*uK225)*k225;
	r226 =	       (c[4]*c[47]-c[16]*c[36]*uK226)*k226;
	r227 =	       rFlat227*coeffM227;
	r228 =	       (c[36]*c[47]-c[15]*c[38]*uK228)*k228;
	r229 =	       (c[36]*c[47]-c[16]*c[48]*uK229)*k229;
	r230 =	       rFlat230*coeffM230;
	r231 =	       (c[3]*c[41]-c[2]*c[47]*uK231)*k231;
	r232 =	       (c[3]*c[41]-c[15]*c[32]*uK232)*k232;
	r233 =	       (c[3]*c[41]-c[5]*c[40]*uK233)*k233;
	r234 =	       (c[5]*c[41]-c[2]*c[45]*uK234)*k234;
	r235 =	       (c[5]*c[41]-c[2]*c[46]*uK235)*k235;
	r236 =	       (c[5]*c[41]-c[15]*c[33]*uK236)*k236;
	r237 =	       rFlat237*coeffFallOff237;
	r238 =	       (c[31]*c[42]-c[11]*c[48]*uK238)*k238;
	r239 =	       (c[9]*c[48]-c[31]*c[40]*uK239)*k239;
	r240 =	       (c[10]*c[48]-c[31]*c[41]*uK240)*k240;
	r241 =	       rFlat241*coeffFallOff241;
	r242 =	       (c[11]*c[48]-c[32]*c[41]*uK242)*k242;
	r243 =	       (c[12]*c[48]-c[32]*c[41]*uK243)*k243;
	r244 =	       (c[9]*c[36]-c[3]*c[40]*uK244)*k244;
	r245 =	       (c[9]*c[36]-c[15]*c[31]*uK245)*k245;
	r246 =	       (c[10]*c[36]-c[3]*c[41]*uK246)*k246;
	r247 =	       (c[10]*c[36]-c[2]*c[47]*uK247)*k247;
	r248 =	       (c[10]*c[36]-c[17]*c[31]*uK248)*k248;
	r249 =	       (c[11]*c[36]-c[2]*c[46]*uK249)*k249;
	r250 =	       (c[11]*c[36]-c[5]*c[41]*uK250)*k250;
	r251 =	       (c[11]*c[36]-c[2]*c[44]*uK251)*k251;
	r252 =	       (c[12]*c[36]-c[2]*c[46]*uK252)*k252;
	r253 =	       (c[12]*c[36]-c[5]*c[41]*uK253)*k253;
	r254 =	       (c[12]*c[36]-c[2]*c[44]*uK254)*k254;
	r255 =	       (c[13]*c[36]-c[6]*c[41]*uK255)*k255;
	r256 =	       (c[13]*c[36]-c[5]*c[42]*uK256)*k256;
	r257 =	       (c[3]*c[43]-c[2]*c[15]*c[48]*uK257)*k257;
	r258 =	       (c[3]*c[43]-c[36]*c[41]*uK258)*k258;
	r259 =	       (c[4]*c[43]-c[3]*c[17]*c[48]*uK259)*k259;
	r260 =	       (c[5]*c[43]-c[2]*c[17]*c[48]*uK260)*k260;
	r261 =	       (c[2]*c[43]-c[11]*c[48]*uK261)*k261;
	r262 =	       (c[3]*c[46]-c[16]*c[32]*uK262)*k262;
	r263 =	       (c[3]*c[46]-c[15]*c[39]*uK263)*k263;
	r264 =	       (c[3]*c[46]-c[5]*c[47]*uK264)*k264;
	r265 =	       (c[2]*c[46]-c[15]*c[33]*uK265)*k265;
	r266 =	       (c[2]*c[46]-c[1]*c[47]*uK266)*k266;
	r267 =	       (c[5]*c[46]-c[6]*c[47]*uK267)*k267;
	r268 =	       (c[5]*c[46]-c[16]*c[33]*uK268)*k268;
	r269 =	       rFlat269*coeffM269;
	r270 =	       (c[2]*c[44]-c[2]*c[46]*uK270)*k270;
	r271 =	       (c[2]*c[44]-c[5]*c[41]*uK271)*k271;
	r272 =	       (c[2]*c[44]-c[15]*c[33]*uK272)*k272;
	r273 =	       (c[2]*c[45]-c[2]*c[46]*uK273)*k273;
	r274 =	       (c[28]*c[36]-c[15]*c[44]*uK274)*k274;
	r275 =	       (c[13]*c[31]-c[2]*c[42]*uK275)*k275;
	r276 =	       (c[13]*c[31]-c[1]*c[41]*uK276)*k276;
	r277 =	       (c[2]*c[34]-c[1]*c[33]*uK277)*k277;
	r278 =	       (c[5]*c[34]-c[6]*c[33]*uK278)*k278;
	r279 =	       (c[3]*c[34]-c[5]*c[33]*uK279)*k279;
	r280 =	       (c[16]*c[32]-c[15]*c[39]*uK280)*k280;
	r281 =	       (c[37]*c[40]-c[36]*c[47]*uK281)*k281;
	r282 =	       (c[37]*c[47]-c[16]*c[38]*uK282)*k282;
	r283 =	       (c[16]*c[31]-c[15]*c[36]*uK283)*k283;
	r284 =	       c[3]*c[13]*k284;
	r285 =	       (c[3]*c[25]-c[2]*c[52]*uK285)*k285;
	r286 =	       (c[3]*c[26]-c[2]*c[53]*uK286)*k286;
	r287 =	       (c[5]*c[7]-c[4]*c[6]*uK287)*k287;
	r288 =	       c[5]*c[13]*k288;
	r289 =	       rFlat289*coeffFallOff289;
	r290 =	       c[4]*c[11]*k290;
	r291 =	       (c[4]*c[11]-c[3]*c[18]*uK291)*k291;
	r292 =	       c[11]*c[11]*k292;
	r293 =	       c[6]*c[12]*k293;
	r294 =	       (c[4]*c[24]-c[3]*c[52]*uK294)*k294;
	r295 =	       (c[4]*c[24]-c[7]*c[23]*uK295)*k295;
	r296 =	       (c[3]*c[53]-c[5]*c[52]*uK296)*k296;
	r297 =	       c[3]*c[53]*k297;
	r298 =	       c[4]*c[53]*k298;
	r299 =	       (c[2]*c[53]-c[1]*c[52]*uK299)*k299;
	r300 =	       c[2]*c[53]*k300;
	r301 =	       c[5]*c[53]*k301;
	r302 =	       c[7]*c[53]*k302;
	r303 =	       c[13]*c[53]*k303;
	r304 =	       rFlat304*coeffFallOff304;
	r305 =	       c[3]*c[52]*k305;
	r306 =	       c[4]*c[52]*k306;
	r307 =	       c[4]*c[52]*k307;
	r308 =	       (c[2]*c[52]-c[13]*c[17]*uK308)*k308;
	r309 =	       (c[2]*c[52]-c[1]*c[29]*uK309)*k309;
	r310 =	       (c[5]*c[52]-c[6]*c[29]*uK310)*k310;
	r311 =	       (c[5]*c[52]-c[17]*c[19]*uK311)*k311;
	r312 =	       rFlat312*coeffFallOff312;
	r313 =	       (c[3]*c[51]-c[5]*c[50]*uK313)*k313;
	r314 =	       (c[2]*c[51]-c[1]*c[50]*uK314)*k314;
	r315 =	       (c[5]*c[51]-c[6]*c[50]*uK315)*k315;
	r316 =	       (c[8]*c[50]-c[7]*c[51]*uK316)*k316;
	r317 =	       (c[13]*c[51]-c[14]*c[50]*uK317)*k317;
	r318 =	       rFlat318*coeffFallOff318;
	r319 =	       (c[3]*c[50]-c[18]*c[26]*uK319)*k319;
	r320 =	       rFlat320*coeffFallOff320;
	r321 =	       (c[2]*c[50]-c[13]*c[26]*uK321)*k321;
	r322 =	       (c[5]*c[50]-c[19]*c[26]*uK322)*k322;
	r323 =	       (c[7]*c[50]-c[4]*c[51]*uK323)*k323;
	r324 =	       c[7]*c[50]*k324;
	r325 =	       (c[13]*c[50]-c[26]*c[26]*uK325)*k325;


	// ============================================================ 
	// ===== REACTION RATES FOR EVERY SPECIES ===================== 
	// ============================================================ 
	R[1] =	       r53+r314+r277+r8-r221+r49-r3+r75+r73-r83-r289+r174+r197+r78+r39+r55-r126+r41+r299+r284+r300+r77-r136+r209+r40+r65+r266+r80+r45+r42+r60+r288+r58-r84+r191-r172+r68+r202+r51+r214+r47+r276+r293+r309+r137+r69-r146;
{
double MapleGenVar1 = -r183+r24+r218+r90+r199-r53+r7-r314+r130+r190-r34+r286+r128-r277+r231-r272-r44+r21+r144+r28+r221-r320+r204-r49+r135+r3-r43-r38+r166-r75+r205-r73-r36+r133-r50+r6+r230+r14-r62-r308+r251-r54+r254+2.0*r292-r78-r33-2.0*r39-r55+r234-r37+r159+r247-r321+r126-r304+r257+r260-r61+r167+r123-2.0*r41+r249-r223-r71-r299+r10-r76-r271; 
	R[2] =	            MapleGenVar1+r224+r284-r300-r77-r237-r66+r136+r9-r209-r70-r189-r212+r108-2.0*r40+r196-r63+r285-r65+r106-r265-r266-r67-r80-r45-2.0*r42+r138+r192+r305-r60-r58+r99+r275+r84-r74-r191+r172-r79-r48-r68-r202-r59-r81-r51-r214+r235+r127-r72+r91+r124+2.0*r290-r52-r261+r92+r149-r47-r46-r56-r309+r94+r180-r69+r252+r129-r57-r35+r201-r2+r146+r107;
	}
R[3] =	       -r29-r24+r291-r7-r187-r190+r194-r286-r8-r231+r44+r86-r21-r28-r297-r4-r264-r233-r3-r25+r38-r182-r6-r14-r232-r279+r220-r181-r188-r13-r257+r125-r20-r16-r27-r263+r179-r10+r259-r284+r185-r18-r200+r244-r9-r23-r262-r22-r213+r246+r122-r285-r319-r313+r178-r305-r17+r31-r222-r217-r12-r207-r11-r258+r155-r208-r15-r19-r296-r30-2.0*r1-r26+r294-r5-r201-r2;
	R[4] =	       -r307-r291-r34-r194-r216-r144-r168+r4-r175-r135-r38-r170+r287-r306-r36-r32-r220+r115+r181-r33+r188-r37-r171-r125-r169-r179-r226+r323-r259+r87-r176-r122-r298+r45-r173-r31-r155-r290-r145+r118-r156-r295-r195+r116+r1-r294-r206-r35;
	R[5] =	       r29+r183+r307-r95-r218-r110-r90-r105-2.0*r86+r144+r297+r219-r310+r4-r111+r264+r256+r233+r120+r135+r3-r43-r193+r253+r38-r287+r306-r215-r114-r278+r279-r234+r119-r210+r13-r260+r250+r16+r27+r198+r61-r184-r96-r88+r271-r224-r267-r87+r176-r203-r104+r18+r200-r93+r66-r89+r189+r22-r108-r113-2.0*r85+r213-r106-r322-r112+r313-r192-r97-r288+r17-r99-r84-r103-r236-r301+r48-r100+r207+r11+r324+r186-r235-r102-r91-r268-r109-r101+r15-r92+r156+r19-r311+2.0*r46+r296+r195-r315-r94-r180+r5+r117+r2-r98-r107;
	R[6] =	       r255+r105+r44+r86-r219+r310+r111+r43+r193+r287+r215+r114+r278-r197+r62+r210+r96+r88+r267+r87+r203+r104+r93+r89+r113+r112+r67+r97+r84+r103+r301+r48+r100-r127+r102+r109+r101+r145+r315-r293+r98-r147;
	R[7] =	       r34+r216-r44+r168-r4+r175-r120+r316+r170-r287+r36+r32-2.0*r115+r33-r119+r37-r121+r169+r184-r323+r88-r87-r302+r89+r298-r45-r324-r186-r118+r295+r157+r47-r46-2.0*r116+r206+r35+r5-r117;
	R[8] =	       -r5-r47-r48+r85-r88-r89+r115+r116+r121-r157+r302-r316;
	R[9] =	       r49-r90-r122-r123-r124-r239-r244-r245;
	R[10] =	       -r6+r20-r49+r51-r91+r93-r125-r126-r127-r128-r129-r130-r131-r132-r133-r134-r240-r241-r246-r247-r248-r289;
	R[11] =	       -r291-r7-r128-r135-r50+r238-r251-2.0*r292+r126-r250-r242-r123-r249+r152+r96-r141-r93-r136+r23-r138+r305+r142-r290+r261-r92-r139+r148+r151-2.0*r137+r30-r117-r140+r143;
	R[12] =	       -r8-r144-r253-r243+r62-r254-r152-r9+r67+r97+r79-r142-r51-r145-r148-r149-r150-r151-r153-r154-r293-r94-r252-r146-r147-r143;
	R[13] =	       -r95-r255+r110-r211+r53-r312-r318+r297-r325-r256-r160+r25-r161-r164+r50+r289+r308-r119-2.0*r159+r321-r317+r61-r96-r10-r284+r300-r163+r66+r302+r136-r165+r298-2.0*r158-r138-r97-r288-r275+r301-r162+r11+r81-r155-r124-r52-r118+2.0*r139-r149+2.0*r150+r154-r156-r157-r276-r129+r26+r98+r146;
	R[14] =	       -r11+r52-r53-r98+r118-r130-r139-r150+r157+r160+r161+r162+r163+r164+r165+r211+r303+r317;
	R[15] =	       r110+r90+r269+r8+r274+r272+r144+r303+2.0*r28+r297+r168+2.0*r177+r160-r120+r135+r132+r166+r306+r6-r83+r232+r55+r13+r171+r257+r20+r263+r283+r167+r223+r141+r224+r284+r300+2.0*r176+r302+r23+r122+r265+r298-r99+r134+r228-r31+r222+r236+r301+r79+r217+r100-r12+r81-r131+r225+r145+r153+r245+r227+r280-r140;
	R[16] =	       r12+r14+r30+r31+r99+r120-r132-r153+r226+r229+r262+r268-r280+r282-r283+r290+r305;
	R[17] =	       2.0*r307+r7-r168-r160+r132+r25-r166+r161+r32-r14+r308-r54-r55-r13+r171+r121+r125+r260-r167+r259+r248+r9+r173+r58-r100+r91+r101+r15+r311;
	R[18] =	       r291+r170-r161+r306-r133-r32+r83+r54-r121+r16+r169+r10+r65+r319+r173+r60+r288+r17-r58+r103+r324+r127+r102-r101-r15+r92+r153+r156+r293-r56+r94+r26-r57+r117;
	R[19] =	       -r16+r18+r56-r59-r60-r61-r62+r64+r68-r102+r104+r162-r169+r311+r322;
	R[20] =	       -r17+r19+r57-r63-r64-r65-r66-r67+r69-r103+r105+r119+r155+r163-r170;
	R[21] =	       -r18-r19+r59+r63-r68-r69+r95-r104-r105+r147-r162-r163;
	R[22] =	       -r20+r22-r70-r106+r109+r123-r171-r172;
	R[23] =	       -r21-r22-r23+r70-r71+r73-r107-r108-r109-r110+r111+r124+r128+r134+r137+r172+r174+r177+r292+r295;
	R[24] =	       -r24+r71-r72-r73+r75-r111+r112+r129+r141+r164-r173-r294-r295;
	R[25] =	       -r25+r72-r74-r75+r77-r112+r130+r138+r149-r164-r174+r175-r285-r318;
	R[26] =	       -r26+r27+r74-r76-r77+r78+r113+r154+r159+r165-r175-r286-r312+r319+r321+r322+r324+2.0*r325;
	R[27] =	       -r27+r76-r78-r113-r154+r158-r165;
	R[28] =	       r21-r28+r29-r79+r80+r106+r114+r131-r134-r141-r176-2.0*r177-r274;
	R[29] =	       r24-r29-r30-r80-r81+r82+r107-r114+r133+r140-r304+r309+r310;
	R[30] =	       -r82+r108;
	R[31] =	       -r178-r179-r180+r191+r193-r196+r217-r225+r227-r238+r239+r240+r245+r248-r275-r276-r283;
	R[32] =	       -r190-r191-r192-r193-r194-r195-r196-r197-r198-r199+r200+r202+r203+r208+r223+r232+r242+r243+r262+r269-r280;
	R[33] =	       -r200-r201-r202-r203+r236+r265+r268+r272+r277+r278+r279;
	R[34] =	       -r277-r278-r279;
	R[35] =	       -r204-r205-r206-r207-r208-r209-r210-r211;
	R[36] =	       -r255-r199-r187+r190+r216-r274-r256-r253+2.0*r182+r215-r251-r254+r188-r247-r250-r198+r283+r179+r226-r249-r229+r224+r281-r248-r244+r189-r212+r213-r246-r178-r228+r222-r186+r258+r214+r208-r245+r195+r180-r252;
	R[37] =	       r186+r187-r188-r189-r281-r282;
	R[38] =	       -r181-r182-r183-r184-r185+r199+r228+r282;
	R[39] =	       r192+r194+r197+r201+r212-r213-r214-r215-r216+r263+r280;
	R[40] =	       -r217-r218-r219-r220-r221+r230+r233+r239+r244-r281;
	R[41] =	       r219+r221-r230-r231-r232-r233-r234-r235-r236-r237+r240+r242+r243+r246+r250+r253+r255+r258+r271+r276;
	R[42] =	       r237-r238+r256+r275;
	R[43] =	       r241-r257-r258-r259-r260-r261;
	R[44] =	       r251+r254-r270-r271-r272+r274;
	R[45] =	       r234-r273;
	R[46] =	       r235+r249+r252-r262-r263-r264-r265-r266-r267-r268-r269+r270+r273;
	R[47] =	       r218+r220-r222-r223-r224-r225-r226-r227-r228-r229+r231+r247+r264+r266+r267+r281-r282;
	R[48] =	       r183+r211+r204+r205-r243+r238+r181+r210+r257+r260+r198-r242+r184+r229+r259+r185-r239+r209+r196+r178+r207+r225+r261-r241-r240+r206;
	R[49] =	       0.0;
	R[50] =	       r313+r314+r315-r316+r317+r318-r319-r320-r321-r322-r323-r324-r325;
	R[51] =	       r312-r313-r314-r315+r316-r317+r320+r323;
	R[52] =	       r285+r294+r296+r299+r304-r305-r306-r307-r308-r309-r310-r311;
	R[53] =	       r286-r296-r297-r298-r299-r300-r301-r302-r303;
}
